﻿Public Class frmJuego

    Dim puntuacion As New Puntuacion
    Dim usuario As New Usuario
    Private Sub ReiniciarJuegoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ReiniciarJuegoToolStripMenuItem.Click
        'Hace que las cartas se repartan otra vez. Se muestren el tiempo necesario y se den la vuelta para volver a jugar.
        Me.Size = New Point(682, 519)
        borrar() 'Esto lo que hace es eliminar todas las picture box
        CrearPictures(18, 6)
        'Esto sirve para poder guardar la puntuacion en jugador y ademas de eso es la puntuacion en facil
        comprobarCartas()
        usuario.puntuacion = lblPunt.Text
    End Sub
    Private Sub VolverAlMenúToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VolverAlMenúToolStripMenuItem.Click
        Me.Close() 'Esto debería cerrar solamente este formulario
    End Sub

    ''' <summary>
    ''' Timer para controlar que las cartas se muestren 3 segundos
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        'meter un for para que de la vuelta.
        Timer1.Stop()
    End Sub

    Private Sub MedioToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MedioToolStripMenuItem.Click
        'Esto lo que hace es cambiar la dificultad del juego a medio
        Me.Size = New Point(690, 630)
        borrar()
        CrearPictures(28, 7)
        comprobarCartas()
        usuario.puntuacion = lblPunt.Text
    End Sub

    Sub CrearPictures(ByVal cuantas As Integer, ByVal cuantasPorFila As Integer)
        Dim x, y As Integer
        x = 32
        y = 100

        Dim laMitadDeLasFotos As New List(Of Foto)
        For c = 0 To cuantas \ 2 - 1 Step 1
            'se añade una foto a conciencia.
            laMitadDeLasFotos.Add(New Foto(c))
        Next
        'Se reagregan para que hayan 2 de cada
        laMitadDeLasFotos.AddRange(laMitadDeLasFotos)

        For i = 0 To laMitadDeLasFotos.Count - 1
            Dim pic As New PictureBox
            Dim foto As Foto = laMitadDeLasFotos(i)
            pic.Name = foto.Foto
            pic.ImageLocation = foto.Localizacion 'Esto a sido añadido para comprobar el funcionamiento del juego.
            ' pic.Image = My.Resources.caparazon_verde1
            pic.BorderStyle = BorderStyle.Fixed3D
            pic.Size = New Point(77, 104)
            x += pic.Width + 10

            ' si la i es múltiplo de cuantasPorFila bajar a la siguiente fila
            If i Mod cuantasPorFila = 0 Then
                If i > 0 Then y += pic.Height + 10
                x = 32
            End If
            pic.Location = New Point(x, y) 'esto esta por calcular  pic.Location = New Point(x, y) 'esto esta por calcular
            Me.Controls.Add(pic)
        Next
        Timer1.Start()
    End Sub
    Private Sub DifícilToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DifícilToolStripMenuItem.Click
        Me.Size = New Point(800, 710)
        borrar()
        CrearPictures(40, 8)
        comprobarCartas()
        usuario.puntuacion = lblPunt.Text
    End Sub
    Private Sub SalirDelJuegoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SalirDelJuegoToolStripMenuItem.Click
        Close()
    End Sub
    Private Sub frmJuego_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Esto lo que hace es empezar el formulario en la dificultad de facil
        CrearPictures(18, 6)
        lblPunt.Text = puntuacion.puntosDificil
        usuario.puntuacion = lblPunt.Text
    End Sub
    Private Sub borrar()
        'Esto lo que debería hacer es eliminar los controles que hemos creado antes en tiempo de ejecucion
        For i As Integer = Me.Controls.Count - 1 To 0 Step -1
            Me.Controls.RemoveByKey("pic")
        Next
    End Sub

    Private Sub comprobarCartas()
        'Da la vuelta a las cartas cuando se falla la pareja si le sale de los putos cojones
        If Me.Controls.Equals("pic") = True Then
            lblPunt.Text = puntuacion.puntosDificil
        Else
            lblPunt.Text = puntuacion.puntosDificil
            ReiniciarJuegoToolStripMenuItem.Available = False
        End If
    End Sub

End Class